/**
 * 注意事项
 *  ● 构造函数首字母大写
 *  ● 构造函数不需要 return 语句
 *
 * 构造函数执行流程
 *  ● 创建一个空对象
 *  ● 构造函数内部的 this 指向这个对象
 *  ● 执行构造函数的代码，给这个对象添加成员
 *  ● 返回这个对象
 */
// 构造函数
function Fn(attr) {
  this.attr = attr
  this.fn = function () {
    console.log('fn', this.attr)
  }
}

// 通过构造函数创建实例对象
var fn = new Fn('attr')

console.log(fn.attr)
fn.fn()
